iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
自我挑戰組

自我挑戰Ruby系列 第 18

Day 18 - 範圍

  • 分享至 

  • xImage
  •  

寫法

範圍的寫法有分成兩個方法,主要差別是有包含和不包含:

.. (兩個點) → 是有包含的範圍,例如:1..6 會生成1, 2, 3, … , 6。

… (三個點) → 是沒有包含的範圍,例如:1…6 會生成1, 2, 3 … , 5。

範圍轉為陣列

通常我們有了這個範圍,我們會將範圍轉為成陣列,而我們會藉由 to_a 將範圍轉為陣列。

例如: (1..6).to_a 會產生 [1, 2, 3, 4, 5, 6]的一個陣列。

除了藉由to_a 來轉換成陣列,我們也可以藉由*來轉換。

例如:[*1..6]也同樣的會產生 [1, 2, 3, 4, 5, 6]的一個陣列。

數字範圍的陣列

(1..100).to_a 會產生 1~100元素的陣列。

文字範圍的陣列

('a'..'z').to_a 會產生 a, b, c, … , z 的26個元素的陣列。

('A'..'Z').to_a 會產生 A, B, C, … , Z 的26個元素的陣列。

('A'..'z').to_a 會產生 A, B, C, … , Z, [, \, ], ^, _, `, a, b, c, ... z 元素的陣列。

主要是大寫A~Z加上小寫a~z以及 [ \ ] ^ _ ` 的符號(共26+26+6個字)。

for 迴圈

可以藉由:

for i in 1..10

     puts i

end

得到分別得到1~10

https://ithelp.ithome.com.tw/upload/images/20231003/20162251XihOR8D52s.png

範圍使用

之前介紹過一些在陣列中使用的方法,例如:map, select…等,

我們其實都可以藉由範圍的方式使用,而且這些方法也可以不用先轉成陣列就可以用。

例如:之前使用陣列時:

arr = [1, 2, 3, 4]

p arr.map{|x| x+5}

我們可以就由範圍改成:

p (1..4).map {|x| x+5}

這樣的話,我們就可以更簡潔達到我們要的效果。

Day 18 結語

藉由範圍的方法,我們可以將連續的數字或文字達到這樣的效果,使程式碼更簡潔,

也是我們使用上更方法。不斷的學習到一些很有趣的東西,

自己有很多不足,還是得加強,但可以學到新的知識,讓我覺得非常有趣。


上一篇
Day 17 - 陣列2
下一篇
Day 19 - 雜湊
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言